package FileStudy;

import java.io.*;

public class Fdemo5 {
    public static void main(String[] args) {
//        InputStream inputStream = null;
//        try {
//            inputStream = new FileInputStream("d:/test.txt");
//            while (true){
//                int b = inputStream.read();//read里面不带参数表示一个字节一个字节的读
//                if(b == -1){//读到了文件末尾
//                    break;
//                }
//                System.out.println(b);//此处读出来的数字就是对应的ASCII码值
//            }
//        } catch (FileNotFoundException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }finally {
//            //读完之后需要关闭文件，释放资源
//            //加上finally是防止read抛出异常 导致无法关闭文件
//            try {
//                inputStream.close();
//            } catch (IOException e) {
//                e.printStackTrace();
//            }
//        }



        //简洁写法:java中提供了一个方法 try with resources 这里的try会自动调用close()方法
        //注意这里需要符合条件的才能使用 得实现Closeable 这个接口
//        try(InputStream inputStream = new FileInputStream("d:/test.txt")){
//            while (true){
//                int b = inputStream.read();
//                if(b == -1){
//                    break;
//                }
//                System.out.println(b);
//            }
//        } catch (IOException e) {
//            e.printStackTrace();
//        }


        try(InputStream inputStream = new FileInputStream("d:/test.txt")){
            //一次读取若干个字节
            byte []buffer = new byte[1024];
            while (true){
                int len = inputStream.read(buffer);
                if( len == -1){
                    break;
                }
                for (int i = 0; i < len; i++) {
                    System.out.println(buffer[i]);
                }
            }
        }catch (IOException e){
            e.printStackTrace();
        }
    }
}
